home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 42 / Amiga Format AFCD42 (Issue 126, Aug 1999).iso / -serious- / programming / other / wild / include / clvo / loadermodule_lib.h < prev    next >
C/C++ Source or Header  |  1999-05-25  |  2KB  |  94 lines

  1. #include <exec/types.h>
  2. #include <gcc/compiler.h>
  3.  
  4. #ifdef __GNUC__
  5. #define USE_TAGS_STUBS
  6. #endif
  7.  
  8. extern ULONG CallModulePPCc(LONG offset,struct WildModule *BASE,ASMREG(LONG,d0arg,d0),ASMREG(LONG,d1arg,d1),ASMREG(LONG,*a0arg,a0),ASMREG(LONG,*a1arg,a1));
  9.  
  10. #ifndef _LVOSetModuleTags    
  11. #define _LVOSetModuleTags            -30
  12. #define SetModuleTags(A0,A1) \
  13. CallModulePPCc(_LVOSetModuleTags,LoaderModuleBase,0,0,((LONG *)A0),((LONG *)A1))
  14. #ifdef USE_TAGS_STUBS
  15. #define SetModuleTagsTags(A0,tags... ) \
  16. ({ULONG _t[]={tags}; \
  17. SetModuleTags(A0,(APTR)_t); \
  18. })
  19. #endif
  20. #endif
  21.  
  22. #ifndef _LVOGetModuleTags    
  23. #define _LVOGetModuleTags            -36
  24. #define GetModuleTags(A0,A1) \
  25. CallModulePPCc(_LVOGetModuleTags,LoaderModuleBase,0,0,((LONG *)A0),((LONG *)A1))
  26. #ifdef USE_TAGS_STUBS
  27. #define GetModuleTagsTags(A0,tags... ) \
  28. ({ULONG _t[]={tags}; \
  29. GetModuleTags(A0,(APTR)_t); \
  30. })
  31. #endif
  32. #endif
  33.  
  34. #ifndef _LVOSetupModule    
  35. #define _LVOSetupModule            -42
  36. #define SetupModule(A0,A1) \
  37. CallModulePPCc(_LVOSetupModule,LoaderModuleBase,0,0,((LONG *)A0),((LONG *)A1))
  38. #ifdef USE_TAGS_STUBS
  39. #define SetupModuleTags(A0,tags... ) \
  40. ({ULONG _t[]={tags}; \
  41. SetupModule(A0,(APTR)_t); \
  42. })
  43. #endif
  44. #endif
  45.  
  46. #ifndef _LVOCloseModule    
  47. #define _LVOCloseModule            -48
  48. #define CloseModule(A0) \
  49. CallModulePPCc(_LVOCloseModule,LoaderModuleBase,0,0,((LONG *)A0),0)
  50. #endif
  51.  
  52. #ifndef _LVORefreshModule    
  53. #define _LVORefreshModule            -54
  54. #define RefreshModule(A0) \
  55. CallModulePPCc(_LVORefreshModule,LoaderModuleBase,0,0,((LONG *)A0),0)
  56. #endif
  57.  
  58. #ifndef _LVOLOALoadObj    
  59. #define _LVOLOALoadObj                -60
  60. #define LOALoadObj(A0,A1) \
  61. CallModulePPCc(_LVOLOALoadObj,LoaderModuleBase,0,0,((LONG *)A0),((LONG *)A1))
  62. #ifdef USE_TAGS_STUBS
  63. #define LOALoadObjTags(A0,tags... ) \
  64. ({ULONG _t[]={tags}; \
  65. LOALoadObj(A0,(APTR)_t); \
  66. })
  67. #endif
  68. #endif
  69.  
  70. #ifndef _LVOLOAGetObjAttr    
  71. #define _LVOLOAGetObjAttr            -66
  72. #define LOAGetObjAttr(A0,A1,D0,D1) \
  73. CallModulePPCc(_LVOLOAGetObjAttr,LoaderModuleBase,((LONG)D0),((LONG)D1),((LONG *)A0),((LONG *)A1))
  74. #endif
  75.  
  76. #ifndef _LVOLOANextObjChild    
  77. #define _LVOLOANextObjChild            -72
  78. #define LOANextObjChild(A0,A1,D0) \
  79. CallModulePPCc(_LVOLOANextObjChild,LoaderModuleBase,((LONG)D0),0,((LONG *)A0),((LONG *)A1))
  80. #endif
  81.  
  82. #ifndef _LVOLOAMadeObjIs    
  83. #define _LVOLOAMadeObjIs            -78
  84. #define LOAMadeObjIs(A0,A1) \
  85. CallModulePPCc(_LVOLOAMadeObjIs,LoaderModuleBase,0,0,((LONG *)A0),((LONG *)A1))
  86. #endif
  87.  
  88. #ifndef _LVOLOAFreeObj    
  89. #define _LVOLOAFreeObj                -84
  90. #define LOAFreeObj(A0) \
  91. CallModulePPCc(_LVOLOAFreeObj,LoaderModuleBase,0,0,((LONG *)A0),0)
  92. #endif
  93.  
  94.